// 访问权限的拦截
import router from '@/router'
import store from '@/store'

import {
  Message
} from 'element-ui';
// 导入进度条
import Nprogress from 'nprogress'
import 'nprogress/nprogress.css'

// 定义白名单
const WHTTE_LIST = ['/login', '/404']

// 添加导航守卫
router.beforeEach(async (to, from, next) => {
  // 开启进度条
  Nprogress.start()
  //   console.log(token, to.path)
  const token = store.getters.token

  if (token) {
    // 得到用户信息
    const userInfo = store.getters.userInfo
    // 判断用户信息是否存在
    if (!userInfo.username) {
      // 如果用户信息不存在，调用接口得到数据
      await store.dispatch('user/getUserInfo')
    }


    if (to.path === '/login') {
      // 提示已经登录过了
      Message({
        message: '您已经登录过了，请不要调皮',
        type: 'success',
        center: true
      })
      next('/')
      // 结束进度条
      Nprogress.done()

    } else {
      next()

    }


  } else {

    if (WHTTE_LIST.indexOf(to.path) !== -1) {
      next()
    } else {
      // 提示未登录
      Message({
        message: '对不起，您还未登录，请重新登录，谢谢！',
        type: 'warning',
        // center: true
      })
      // 跳转到登录页面：记录之前访问的页面的路径
      next(`/login?_redirect=${to.path}`)
    }

  }
})

// 添加后置钩子
router.afterEach((to, from) => {
  // 结束进度条
  Nprogress.done()
})
